// yb_shop/pages/poster/index.js
var app = getApp();
let wechat = require("../..//utils/wechat.js");
var core = require("../..//utils/core.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    src: '',
    paths: {
      card: 'yb_mingpian/pages/cardinfo/index',
    },
    config:app.config,
    platform: 'android'
  },
  dosave: function()
  {
    if (this.data.src.length > 0)
    {
      wx.showLoading({title:'保存中...'});
      wechat.saveImageToPhotosAlbum(this.data.src).then(d => {
        wx.hideLoading();
        core.alert("海报保存成功");
      }).catch(e => {
        wx.hideLoading();
        core.alert("海报保存失败,请重试");
      })
    }
    else
    {
      core.alert("海报正在生成,请稍候");
    }
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var path = this.data.paths[options.share_type];
    var id = options.id;
    console.log("poster2_options",options);
    if (!options.img) {
      options.img = 'http://p.qlogo.cn/bizmail/H5GGghYv4DqmQlu5yEfZYRqMqFLnJXOicf4uoVJ0q15VMxTB2DMlulw/0';
    }
   
    var pic_url = app.util.makeurl({
      url: 'entry/wxapp/net_img', data: {
        url: encodeURIComponent(options.img)
      }
    });
      console.log("pic_url",pic_url);

      //获取设备系统信息
      wx.getSystemInfo({
          success: function (res) {
              console.log("poster_dev_info",res);
              if (res.platform == "devtools" || res.platform == "android") {
                  options.img = pic_url;
              }
          }
      })

    //options.img = pic_url;

    const ctx = wx.createCanvasContext('poster');
    ctx.clearRect(0, 0, 0, 0); 

    ctx.setFillStyle('#ffffff')
    ctx.fillRect(0, 0, 750, 1070)
    //姓名
    ctx.setFontSize(48);
    ctx.setFillStyle("#080808");
    ctx.fillText(options.user_name, 30, 820);

    //职位
    if (options.position){
      ctx.setFontSize(30);
      ctx.setFillStyle("#333333");
      const CONTENT_ROW_LENGTH = 30;  // 正文 单行显示字符长度
      let [contentLeng, contentArray, contentRows] = this.textByteLength(options.position, CONTENT_ROW_LENGTH);
      console.log(contentArray)
      ctx.setTextAlign('left')
      ctx.setFillStyle("#333333");
      let contentHh = 30;
      if (contentArray.length == 1) {
        ctx.fillText(contentArray[0], 30, 870);
      } else {
        ctx.fillText(contentArray[0] + '...', 30, 870);
      }
    }

    //手机
    ctx.setFontSize(24);
    ctx.setFillStyle("#333333");
    ctx.fillText("手机 " + options.tel, 30, 920);
    //微信
    if (options.wechat_number){
      ctx.setFontSize(24);
      ctx.setFillStyle("#333333");
      ctx.fillText("微信 " + options.wechat_number, 30, 955);
    }
    
     //地址
    var address = options.address;
    if (address){
      ctx.setFontSize(24);
      ctx.setFillStyle("#333333");
      ctx.fillText("地址", 30, 990);
     //ctx.drawImage('/yb_mingpian/static/card/li_icon03.png', 30, 970, 40, 40);
      const CONTENT_ROW_LENGTH = 30;  // 正文 单行显示字符长度
      let [contentLeng, contentArray, contentRows] = this.textByteLength(address, CONTENT_ROW_LENGTH);
      console.log(contentArray)
      ctx.setTextAlign('left')
      //ctx.setFontSize(24);
      ctx.setFillStyle("#333333");
      let contentHh = 30;
      for (let m = 0; m < contentArray.length; m++) {
        ctx.setFontSize(24);
        ctx.fillText(contentArray[m], 84, 990 + contentHh * m);
      }
    }

    ctx.fillText("长按识别二维码", 530, 1015);

    ctx.setStrokeStyle("#818181")
    ctx.beginPath()
    ctx.setLineWidth(1)
    ctx.moveTo(30, 886)
    ctx.lineTo(300, 886)
    ctx.stroke()
    var url = app.util.makeurl({url:'entry/wxapp/qr_code',data:{
      path: path,
      scene: id
    }});

    var md5 = app.util.md5("share_type=" + options.share_type + "&id=" + options.id);
    var qrcode_path = app.getCache(md5);
    console.log("qrcode_path",qrcode_path);
    var that = this;

    // console.log("options.img",options.img);
    //   wx.downloadFile({
    //       //url: 'https://p.qlogo.cn/bizmail/mZXfevxq39Y7OiaetPD4Giaone3VFLGPa8I2e6Libwy6tnOl5XAwcP16Q/0', //仅为示例，并非真实的资源
    //     url: options.img,
    //       success (res) {
    //           console.log("finish444444",res.tempFilePath)
    //           // 只要服务器有响应数据，就会把响应内容写入文件并进入 success 回调，业务需要自行判断是否下载到了想要的内容
    //           if (res.statusCode === 200) {
    //               ctx.drawImage(res.tempFilePath, 0, 0, 750, 750);
    //               ctx.draw(false, function () {
    //                   setTimeout(() => {
    //                       wx.canvasToTempFilePath({
    //                           destWidth: 750,
    //                           destHeight: 1050,
    //                           canvasId: 'poster',
    //                           success: function (res2) {
    //                               console.log("finish55555",res2.tempFilePath)
    //                               that.setData({
    //                                   src: res2.tempFilePath
    //                               });
    //                           }
    //                       })
    //                   }, 200)
    //               });
    //           }
    //       },
    //       fail (res) {
    //           console.log("fail",res)
    //       }
    //   })
    //   return;

    if (qrcode_path != "")
    {
      console.log("has save !!!!!!!");
      ctx.drawImage(qrcode_path, 510, 785, 206, 206);
      wechat.downloadFile(options.img)
        .then(d => {
          console.log("has",d);
          ctx.drawImage(d.tempFilePath, 0, 0, 750, 750);
          
          ctx.draw(false, function () {
            setTimeout(() => {
            wx.canvasToTempFilePath({
              destWidth: 750,
              destHeight: 1050,
              canvasId: 'poster',
              success: function (res) {
                console.log("finish1",res.tempFilePath)
                that.setData({
                  src: res.tempFilePath
                });
              }
            })
            }, 200)
          });
      })
      .catch(err => {
        core.alert("图片无法下载,海报生成失败");
      })
    }
    else
    {
      console.log("not save !!!!!!!");

      wechat.downloadFile(options.img)
      .then(d => {
          console.log("not", d);
        ctx.drawImage(d.tempFilePath, 0, 0, 750, 750);
        return wechat.downloadFile(url);
      }).then(d => {
        console.log(d);
        return wechat.saveFile(d.tempFilePath);
      })
      .then(d => {
        console.log("savedFilePath", d);
        var savedFilePath = d.savedFilePath;
        app.setCache(md5, savedFilePath);
        ctx.drawImage(savedFilePath, 510, 785, 206, 206);
        ctx.draw(false,function(){
          setTimeout(() => {
            wx.canvasToTempFilePath({
              destWidth: 750,
              destHeight: 1030,
              canvasId: 'poster',
              success: function (res) {
                console.log("finish2", res)
                that.setData({
                  src: res.tempFilePath
                });
              }
              })
          }, 200)
          });

      })
      .catch(err => {
        core.alert("图片无法下载,海报生成失败");
      })
     }
    
  },

  textByteLength: function(text, num) {  // text为传入的文本  num为单行显示的字节长度
    let strLength = 0; // text byte length
    let rows = 1;
    let str = 0;
    let arr = [];
    for (let j = 0; j < text.length; j++) {
      if (text.charCodeAt(j) > 255) {
        strLength += 2;
        if (strLength > rows * num) {
          strLength++;
          arr.push(text.slice(str, j));
          str = j;
          rows++;
        }
      } else {
        strLength++;
        if (strLength > rows * num) {
          arr.push(text.slice(str, j));
          str = j;
          rows++;
        }
      }
    }
    arr.push(text.slice(str, text.length));
    return [strLength, arr, rows]   //  [处理文字的总字节长度，每行显示内容的数组，行数]
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  }
})